package com.firebird.app.kotlin.stock.trend.view

import android.content.Context
import android.util.AttributeSet
import android.widget.ScrollView

/**
 * 自定义外层ScrollView,当ScrollView滚动到底部时交出触摸事件
 * @author ljk
 * @date   2019年11月9日
 */
class OuterScrollView : ScrollView {
    private var isScrollToBottom = false
    private var scrollChangeListener: OnScrollChangeListener? = null

    constructor(context: Context?) : super(context, null) {}
    constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}

    /**
     * 暴露原有的受保护的滚动监听方法
     * @param listener
     */
    fun setOnScrollChangeListener(listener: OnScrollChangeListener?) {
        scrollChangeListener = listener
    }

    /**
     * 滚动视图的可滚动范围是所有子元素的高度。
     * 返回值 由垂直方向滚动条代表的所有垂直范围，缺省的范围是当前视图的画图高度
     */
    val computeVerticalScrollRange: Int
        get() = super.computeHorizontalScrollRange()

    fun setScrollToBottom(isScrollToBottom: Boolean) {
        this.isScrollToBottom = isScrollToBottom
    }

    /*@Override
	public boolean onInterceptTouchEvent(MotionEvent ev) {
		if(isScrollToBottom){
			return false;
		}
		return true;
	}

	@Override
	public boolean onTouchEvent(MotionEvent ev) {
		return super.onTouchEvent(ev);
	}*/
    override fun onScrollChanged(x: Int, y: Int, oldx: Int, oldy: Int) {
        super.onScrollChanged(x, y, oldx, oldy)
        if (scrollChangeListener != null) {
            scrollChangeListener!!.OnScrollChange(x, y, oldx, oldy)
        }
    }

    interface OnScrollChangeListener {
        fun OnScrollChange(x: Int, y: Int, oldx: Int, oldy: Int)
    }
}
